/**
 * @author: Lin
 * @create: 2021-04-08 13:32
 * @description:
 * 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
 * 如果反转后整数超过 32 位的有符号整数的范围[−2**31,2**31− 1] ，就返回 0
 **/
public class Solution {
    public static void main(String[] args) {

        System.out.println(reverse(123));

    }
    public static int reverse(int i){

        int accnum = 0;
        int accnumlast = 0;
        while(i!=0){
            int mod = i % 10;
            accnum = accnum * 10 + mod;
            //每次拼完与上一个记录数相比，如果不一样说明已经溢出，则返回0
            if (accnum / 10 != accnumlast){
                return 0;
            }
            accnumlast = accnum;
            i = i / 10; //除结果数：如120/10=12
        }
        return accnum;
    }
}
